package 实验二;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // 创建教师对象
        Teacher teacher1 = new Teacher("T001", "王教授", "女", "教授", new ArrayList<>());
        Teacher teacher2 = new Teacher("T002", "吴老师", "女", "老师", new ArrayList<>());
        
        // 创建课程对象，注意现在使用课程学分（credits）
        Course course1 = new Course("C001", "Java编程", "计算机楼101", "周一 10:00-12:00", 3, teacher1); // 3学分课程
        Course course2 = new Course("C002", "数据结构", "计算机楼102", "周三 14:00-16:00", 4, teacher2); // 4学分课程
        
        // 将课程添加到教师所授课程中
        teacher1.addCourse(course1);
        teacher2.addCourse(course2);
        
        // 创建学生对象
        Student student1 = new Student("S001", "张三", "男" , "大数据");
        student1.setMajor("大数据");  // 设置专业
        
        // 尝试选修课程
        try {
            student1.selectCourse(course1);
            student1.selectCourse(course2);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
        
        // 打印学生的课表
        student1.printCourseSchedule();
        
        // 创建另一个学生对象
        Student student2 = new Student("S002", "李四", "女" , "大数据");
        student2.setMajor("大数据");  // 设置专业
        
        // 学生2选课
        try {
            student2.selectCourse(course1);
            student2.selectCourse(course2);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
        
        // 打印学生2的课表
        student2.printCourseSchedule();
        
        // 学生1尝试退选课程
        try {
            student1.dropCourse(course1);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
        
        // 打印学生1的课表（退选之后）
        student1.printCourseSchedule();
        
        // 教师开设课程
        teacher1.openCourses();
        teacher2.openCourses();
    }
}

